package com.hcc.export.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Export
 *
 * @author hushengjun
 * @date 2025/4/19
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Export {

    /**
     * 路径后缀
     * @return
     */
    String pathSuffix() default "-export";

    /**
     * 文件保存路径
     * @return
     */
    String filePath() default "tmp_export";

    /**
     * 导出的文件名称
     * @return
     */
    String filename() default "export";

    /**
     * 获取内容的json路径
     * @return
     */
    String contentJsonPath() default "";

    /**
     * 数据类
     * @return
     */
    Class<?> entityClass() default Void.class;

    /**
     * 导出时，每页查询的数量
     * @return
     */
    int exportBeginPage() default 1;

    /**
     * 导出时，每页查询的数量
     * @return
     */
    int exportPageSize() default 1000;

    /**
     * 超时时间（秒）
     * @return
     */
    int timeout() default 30;

}
